#include<stdio.h>
#include<stdlib.h>

// 位运算的应用 https://www.bilibili.com/video/BV1ss41197pu

// 计算二进制数中，1的个数
// 定义1：A 与 0 = 0
// 定义2：A 与 1 = A
int countOnes(int num){
    int count = 0;
    while (num>0)
    {
        if((num & 1) == 1){
            count++;
        }
        // 向右位移1位
        num = (num >> 1);
    }
    return count;
    
}

int main(){
    int num = countOnes(17);
    printf("一共%d个1 \n", num);

}